Problem
【SDOI2008】递归数列
Description
一个由自然数组成的数列按下式定义:
- 对于:
- 对于:
其中和 是给定的自然数。写一个程序,给定自然数, 计算, 并输出它除以给定自然数的余数的值。
Input
输入由四行组成。
第一行是一个自然数。
第二行包含个自然数。
第三行包含个自然数。
第四行包含三个自然数。
Output
Sample Input
1 | 2 |
Sample Output
1 | 142 |
HINT
对于的测试数据:,
标签:矩阵快速幂
Solution
简单矩阵快速幂优化递推。
将答案拆成两个前缀和,即。我们需要快速计算的值,显然可以构造递推矩阵。
特判暴力,其余用转移矩阵的次方乘由和组成的矩阵即可得到。
Code
1 |
|